package terrenos;

import java.net.URL;

import unidades.UnidadHT;

/**
 * Clase abstracta que es superclase de cualquier terreno que puede
 * aparecer en los mapas
 *
 * @author Hasier Rodriguez
 */
public abstract class Terreno extends Casilla {

    private int id;

    /**
     * Construye un nuevo Terreno
     * 
     * @param id El identificativo de este terreno
     */
    public Terreno(int id) {
        super();
        this.id = id;
    }
    
    /**
     * Devuelve el id de este Terreno
     * 
     * @return 
     */
    public int getId() {
    	return this.id;
    }

    /**
     * Devuelve la defensa de la unidad que se le pasa como parámetro
     * ya modificada con la bonificación. La unidad se mantiene intacta
     *
     * @param unidad La unidad con la que hacer la comparación
     * @return La defensa de la unidad con la bonificación aplicada
     */
    public abstract int getBonificacion(UnidadHT unidad);
    
    /**
     * Devuelve la URL que apunta a la imagen de esta unidad
     *
     * @param ext La extension de la imagen (.png, .gif...)
     * @return La URL de la imagen
     */
    public URL getImage(String ext) {
        return getClass().getResource("/resources/" + getId() + ext);
    }
}
